package main

import (
	"google.golang.org/grpc"
	"grpc-server/helpers"
	//点语法，表示可以直接使用
	//server "go-grpc/services"
	. "grpc-server/services"
	"log"
	"net"
)

func main() {
	//rpcServer := grpc.NewServer()
	//server.RegisterGreeterServer(rpcServer, new(server.HelloServer))
	//lis, err := net.Listen("tcp", ":8081")
	//if err != nil {
	//	log.Fatal(err)
	//}
	//
	//rpcServer.Serve(lis)

	// 服务端构造TLS凭证，简单的单方验证
	//creds, err := credentials.NewServerTLSFromFile("./tls/server.pem", "./tls/server.key")
	//if err != nil {
	//	log.Fatalf("Failed to generate credentials %v", err)
	//}

	creds := helpers.GetServerCert()
	// grpc服务器实例,开启TLS认证
	rpcServer := grpc.NewServer(grpc.Creds(creds))
	// 在grpc服务器注册我们的服务
	RegisterHelloServiceServer(rpcServer, new(HelloServer))
	//产品服务
	RegisterProductServiceServer(rpcServer, new(ProductServer))
	//订单服务
	RegisterOrderSerivceServer(rpcServer, new(OrderServer))
	lis, err := net.Listen("tcp", ":8085")
	log.Println("net.Listing whth TLS")
	//用服务器 Serve() 方法以及我们的端口信息区实现阻塞等待，直到进程被杀死或者 Stop() 被调用
	err = rpcServer.Serve(lis)
	if err != nil {
		log.Fatalf("grpcServer.Serve err: %v", err)
	}
}
